package com.wetao.lib_common.base;


import androidx.multidex.MultiDexApplication;

import com.tencent.smtt.sdk.QbSdk;
import com.tencent.smtt.sdk.TbsListener;
import com.wetao.lib_common.utils.LogUtils;

/**
 * 要想使用BaseApplication，必须在组件中实现自己的Application，并且继承BaseApplication；
 * 组件模块中实现的Application必须在debug包中的AndroidManifest.xml中注册，否则无法使用；
 * 组件模块的Application需置于java/debug文件夹中，不得放于主代码；
 * 组件模块中获取Context的方法必须为:ConstantUtils.getAPPContext()，不允许其他写法；
 */
public class BaseApplication extends MultiDexApplication {

    /*当前对象的静态实例*/
    private static BaseApplication instance;

    @Override
    public void onCreate() {
        super.onCreate();
        BaseApplication.instance = this;

        BaseAppDeletage baseAppDeletage = new BaseAppDeletage(this);
        baseAppDeletage.onCreate();


    }

    /**
     * 获取Application对象
     *
     * @return 返回一个App对象实例
     * @see BaseApplication
     */
    public static BaseApplication instance() {
        return BaseApplication.instance;
    }


    /**
     *初始化TBS服务
     */
    public static void initTBS() {
        QbSdk.setTbsListener(
                new TbsListener() {
                    @Override
                    public void onDownloadFinish(int i) {
                        LogUtils.i("onDownloadFinish -->下载X5内核完成：" + i);
                    }

                    @Override
                    public void onInstallFinish(int i) {
                        LogUtils.i("onInstallFinish -->安装X5内核进度：" + i);
                    }

                    @Override
                    public void onDownloadProgress(int i) {
                        LogUtils.i("onDownloadProgress -->下载X5内核进度：" + i);
                    }
                });

        QbSdk.PreInitCallback cb =
                new QbSdk.PreInitCallback() {
                    @Override
                    public void onViewInitFinished(boolean arg0) {
                        // x5內核初始化完成的回调，true表x5内核加载成功，否则表加载失败，会自动切换到系统内核。
                        LogUtils.i(" 内核加载 " + arg0);
                    }

                    @Override
                    public void onCoreInitFinished() {}
                };

        // x5内核初始化接口
        QbSdk.initX5Environment(BaseApplication.instance(), cb);
    }
}
